home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 October / PCWorld_2004-10_cd.bin / software / temacd / sandra / san2004.SP2b-9133-Win32-SSO.exe / {app} / examples / mySQL Schema.sql < prev    next >
Text File  |  2004-03-25  |  3KB  |  138 lines

  1.  
  2. #
  3. # mySQL 3.23+ Schema for Sandra Report
  4. #
  5. # Database is assumed to have been created already.
  6. # No size settings included, please add as required.
  7. #
  8. # Copyright 1995-2004, C. A. Silasi, SiSoftware.
  9. # All Rights Reserved.
  10.  
  11. #
  12. # Kill all tables
  13. #
  14.  
  15. DROP TABLE TItem;
  16.  
  17. DROP TABLE TItemGroup;
  18.  
  19. DROP TABLE TDevice;
  20.  
  21. DROP TABLE TClass;
  22.  
  23. DROP TABLE TModule;
  24.  
  25. DROP TABLE TReport;
  26.  
  27. DROP TABLE TIDCount;
  28.  
  29. #
  30. # Create new tables
  31. #
  32.  
  33. CREATE TABLE TReport (
  34.     ID            INT PRIMARY KEY,
  35.     ProgramName        VARCHAR(255),
  36.     ProgramVersion        VARCHAR(255),
  37.     RegisteredUser        VARCHAR(255),
  38.     RegisteredCompany    VARCHAR(255),
  39.     LicenceStatus        VARCHAR(255),
  40.     LicenceExtra        VARCHAR(255),
  41.     UserID            VARCHAR(255),
  42.     HostName        VARCHAR(255),
  43.     SystemID        VARCHAR(255),
  44.     WebUserID        VARCHAR(255),
  45.     RunID            VARCHAR(255),
  46.     RunDate            DATETIME,
  47.     Completed        BIT NOT NULL
  48. );
  49.  
  50. CREATE TABLE TModule (
  51.     ID            INT PRIMARY KEY,
  52.     ReportID        INT NOT NULL,
  53.     Name            VARCHAR(255) NOT NULL,
  54.     TypeID            INT NOT NULL,
  55.     HasClass        BIT NOT NULL,
  56.     HasDevice        BIT NOT NULL,
  57.     HelpID            INT NOT NULL,
  58.  
  59.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES TReport(ID)
  60. );
  61.  
  62. CREATE TABLE TClass (
  63.     ID            INT PRIMARY KEY,
  64.     ModuleID        INT NOT NULL,
  65.     Name            VARCHAR(255) NOT NULL,
  66.     TypeID            INT NOT NULL,
  67.     HelpID            INT NOT NULL,
  68.  
  69.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  70. );
  71.  
  72. CREATE TABLE TDevice (
  73.     ID            INT PRIMARY KEY,
  74.     ModuleID        INT NOT NULL,
  75.     ClassID            INT,
  76.     Name            VARCHAR(255) NOT NULL,
  77.     TypeID            INT NOT NULL,
  78.     HelpID            INT NOT NULL,
  79.  
  80.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  81. );
  82.  
  83. CREATE TABLE TItemGroup (
  84.     ID            INT PRIMARY KEY,
  85.     ModuleID        INT NOT NULL,
  86.     ClassID            INT,
  87.     DeviceID        INT,
  88.     Name            VARCHAR(255) NOT NULL,
  89.     TypeID            INT NOT NULL,
  90.     HelpID            INT NOT NULL,
  91.  
  92.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  93. );
  94.  
  95. CREATE TABLE TItem (
  96.     ID            INT PRIMARY KEY,
  97.     ModuleID        INT NOT NULL,
  98.     GroupID            INT,
  99.     Name            VARCHAR(255) NOT NULL,
  100.     DataValue        VARCHAR(255),
  101.     IconID            INT NOT NULL,
  102.     TypeID            INT NOT NULL,
  103.     HelpID            INT NOT NULL,
  104.     
  105.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  106. );
  107.  
  108. CREATE TABLE TIDCount (
  109.     TableName        VARCHAR(10) PRIMARY KEY,
  110.     CurrentID        INT NOT NULL
  111. );
  112.  
  113. #
  114. # Set-up keys/indexes
  115. #
  116.  
  117. CREATE INDEX ndxUserID ON TReport (UserID);
  118.  
  119. CREATE INDEX ndxSystemID ON TReport (SystemID);
  120.  
  121. CREATE INDEX ndxWebUserID ON TReport (WebUserID);
  122.  
  123. CREATE INDEX ndxModuleName ON TModule (Name);
  124.  
  125. CREATE INDEX ndxItemName ON TItem (Name);
  126.  
  127. #
  128. # Inserts
  129. #
  130.  
  131. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  132. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  133. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  134. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  135. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  136. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  137.  
  138.